/**
 * axios 二次封装
 * 1.集中、统一管理后端数据接口
 * 2.解决访问后端接口代码复用问题
 * 3.减少全局实例资源消耗
 * （原因：1.axios实例不是必须挂载在全局实例中；2.可以按需加载访问后端接口）
 * 
 * 大致分为两部分代码（两个模块文件）：
 * 1.axios配置内容 --- config.js
 * 2.定制后端接口访问功能函数 --- index.js
 */


// 有关 axios 核心配置文件
import Axios from 'axios';

// 配置请求 前缀 (后面学代理之后基本就没用了，而且只能设置1个，多了就失效了)
Axios.defaults.baseURL = 'https://cnodejs.org';

// 配置请求 超时(毫秒)
Axios.defaults.timeout = 60000; //设置超时时间 1 分钟


// ！ 配置 请求 拦截器
Axios.interceptors.request.use( _request => {
  console.log('拦截请求 request=>', _request);
  // 重点: 返回 请求对象
  return _request;
}  );


// ！ 配置 响应拦截器
Axios.interceptors.response.use( _response => {

  console.log('拦截响应 response=>', _response);
  // 重点: 返回 响应对象
  return _response;
});

export default Axios;
